iT邦幫忙

DAY 4
0

初探網站自動化測試系列 第 4

第一個Geb自動化測試程式(Geb Day 4)

  • 分享至 

  • xImage
  •  

我是一個喜歡先看結局,在決定應不應該看這出戲的人,所以反常的,我先跳過了基礎,直接給一個實際的例子,從實際例子來看,這是不是你想要的東西?再決定要不要花時間投入 。

前置需求:
* JDK
* Maven
* Groovy
* Git

測試需求:
首頁的特定超連結,點擊後,會前往指定的頁面,並確認最後一個標題,為指定的文字。

範例位址:
https://github.com/alincode/GebTutorial

從github clone一份source code後,在GebTutorial目錄下執行mvn test。

package functionality

import geb.spock.GebReportingSpec
import pages.CrossBrowserPage
import pages.FrontPage
import spock.lang.Stepwise

// 這是一個Spock Framework的Annotation,指method之間相依性的關係。
// (雖然這個範例實際上無相依性,若用前往首頁、登入、登出,會是比較好的範例,不過我暫時找不到一個可測試的網站,所以就先暫時這樣寫,之後會在修改範例。)
@Stepwise
class TestSpec extends GebReportingSpec{
    // 某個測試步驟名稱
    def "check Cross Browser Page link"(){
        given:
        to FrontPage

        // 點下首頁中的某個連結
        when:
        item1.click(CrossBrowserPage)

        // 判斷標題是否如預期的文字
        then:
        topic3 == 'Headless Browsers'
    }

}






package pages

import geb.Page

class FrontPage extends Page {

    static at = {$('#main h1').first().text() == 'What is it?' }

    // http://www.gebish.org/
    static url = ""

    static content = {
        item1 { $('#sidebar li a').first() }
    }
}





package pages

import geb.Page

class CrossBrowserPage extends Page {

    // 判斷是否為這個頁面的檢查條件
    static at = {$('#main h1').first().text() == 'Cross Browser Automation'}

    // 頁面網址
    static url = "/crossbrowser"

    // 頁面的內容物有哪些元素
    static content = {
        topic3 { $('#main h1').last().text() }
    }
}

上一篇
為什麼我選擇了Geb?(Geb Day 3)
下一篇
擬定你的測試流程與範圍(Geb Day 5)
系列文
初探網站自動化測試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言